Jupyter notebook обладает множеством возможностей, которые облегчают проведение численных расчетов и оформление результатов. В настоящем документе дается обзор ряда полезных трюков.


In [1]:
# Часто одно вычисление можно реализовать несколькими способами, 
# которые могу значительно отличаться временем работы.
# Чтобы оценить время работы используется команда %timeit.
# Нарпимер, оценим, сколько времени занимает инициализация массива нулями.

import numpy as np

%timeit a = np.zeros(10000)
%timeit a = np.empty(10000)


2.91 µs ± 336 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
630 ns ± 8.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

In [2]:
# Jupyter обладает интелектуальной системой отображения результатов вычислений.
# Результат последней команды автоматически выводится в ячейке.
# При необходимости можно сделать вывод несколько раз, для этого используется команда 
# display пакета IPython.display.
display(1+2)
display("Hi!")


3
'Hi!'

In [3]:
# Вывод ячейки можно обновлять, что можно использовать  например 
# для отображения прогресса вычислений.
import time
from IPython.display import display, update_display, ProgressBar, clear_output

bar = ProgressBar(100) 
display(bar, display_id="bar")
for n in range(100):
    bar.progress = n
    update_display(bar, display_id="bar")
    time.sleep(0.2)
clear_output()
print("Done")


Done

In [6]:
# Jupyter может показывать графики непосредственно в документе, что достигается директивой
# %matplotlib inline 
# и является поведением по умолчанию.
# Интересно, что также можно выводить интерактивные графики, как показано ниже.

%matplotlib notebook
import matplotlib.pyplot as plt

plt.plot(np.arange(10))
plt.show() # Эта команда нужна, чтобы скрыть перечень созданных matplotlib объектов.



In [ ]:
%gui wx

In [ ]: